Skip to content

fix(aaron): drop compiler-rt 18 darwin overlay#465

Merged
etrobert merged 1 commit into
mainfrom
remove-compiler-rt-overlay
Jul 8, 2026
Merged

fix(aaron): drop compiler-rt 18 darwin overlay#465
etrobert merged 1 commit into
mainfrom
remove-compiler-rt-overlay

Conversation

@etrobert-bot

Copy link
Copy Markdown
Collaborator

Summary

Part of a repo-wide audit of temporary fixes: this one no longer patches anything that gets built.

The overlay worked around NixOS/nixpkgs#480849 (llvmPackages_18.compiler-rt failing on darwin with Apple SDK 26.4's libc++ 21). Its removal trigger was "the fix lands in nixos-unstable" — that never happened (PR NixOS/nixpkgs#523142 is still open) — but the workaround died a different way: nothing in aaron's closure references llvmPackages_18 anymore. The system is on LLVM 21.1.8 (llvm-21.1.8, compiler-rt-libc-21.1.8 are the only LLVM components in the closure), so the overlay overrides a derivation nobody evaluates or builds.

Verification (on aaron, temp clone at this change)

  • nix build .#darwinConfigurations.aaron.config.system.build.toplevel --dry-run with the overlay deleted: exactly one derivation to build — the toplevel itself. No compiler-rt, no LLVM 18.
  • The real build succeeded: /nix/store/sgqdmai3249bv7qicr58jw7gy5jb6yij-darwin-system-26.11.d5bd9cd.
  • nix path-info --recursive on that toplevel: only LLVM 21.1.8 components; no llvm-18/compiler-rt-libc-18.
  • Cross-check: aaron's currently running system (built with the overlay) also has no LLVM 18 in its closure — the overlay was already dead weight.
  • On this branch: nix fmt . -- --ci clean; nix flake check --all-systems --no-build --accept-flake-config all checks passed.

🤖 Generated with Claude Code

Nothing in aaron's closure references llvmPackages_18 anymore — the
system is on LLVM 21.1.8 — so the NixOS/nixpkgs#480849 workaround
patches a derivation nobody builds. Verified on aaron: with the overlay
deleted, `nix build .#darwinConfigurations.aaron.config.system.build.toplevel`
dry-run shows only the toplevel itself and the build succeeds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@etrobert-bot etrobert-bot left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent review (fresh clone on tower + verification on aaron). I cannot use --approve since the PR author is also etrobert-bot, so stating it here: verdict: approve — the overlay is dead code and its removal is safe to merge.

praise: Clean, surgical removal — the diff deletes exactly the overlay binding and its nixpkgs.overlays registration, nothing else. lib is still used elsewhere in the file (skhd bindings, lib.getExe), so no dangling argument.

What I verified independently:

  • grep -rniE 'compilerRtOverlay|compiler-rt|llvmPackages_18' over the branch tree: zero remaining references.
  • nix flake check --all-systems --no-build --accept-flake-config on the branch: all checks passed.
  • On aaron, the running system's closure (nix path-info --recursive /run/current-system) contains no LLVM 18 — only llvm-21.1.8, llvm-21.1.8-lib, compiler-rt-libc-21.1.8(+-dev). The overlay was already dead weight, confirming the PR's core claim.
  • In a fresh temp clone of this branch on aaron: nix build .#darwinConfigurations.aaron.config.system.build.toplevel --dry-run exits 0 with nothing to build, and the evaluated toplevel's closure likewise contains only LLVM 21 components.

note (non-blocking): The toplevel I evaluated from the committed branch is af50xy6v…-darwin-system-26.11.d5bd9cd, not the sgqdmai… hash in the description — expected, since the description's build was from a working tree with the overlay deleted rather than the committed rev; both exist in aaron's store and both are LLVM-18-free.

note (non-blocking): The self-cleaning-guard convention in CLAUDE.md suggests pairing workarounds with an eval-time guard; this removal needs none since the code is gone entirely, and nixpkgs#523142 being unmerged is irrelevant now that nothing evaluates llvmPackages_18.

@etrobert etrobert merged commit 5a23a77 into main Jul 8, 2026
6 checks passed
@etrobert etrobert deleted the remove-compiler-rt-overlay branch July 8, 2026 11:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants